package com.创建者模式.原型管理.原型模式拓展;

import java.util.HashMap;
import java.util.Map;

/**原型管理类
 * 好处：可以同时拥有多个不同实现原型实例。
 * @author chenhs
 * @date 2020/10/11
 */
public class Custodian {
	Map map = new HashMap<String,Person>();
	//重载构造函数。使原型管理器在实例化时就生成已有的所有类型。
	public Custodian(){
		//注意，有多少种实现就在map对象中放几个实现的对象。
		map.put("student",new Student());
		map.put("teacher",new Teacher());
	}
	//添加原型（key重复原型覆盖）
	public void addPerson(String name,Person person){
		map.put(name,person);
	}
	//获取原型（获取为空）
	public  Person getPerson(String key){
		return (Person)map.get(key);
	}
}
